package com.vctgo.evidence.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.vctgo.common.core.utils.StringUtils;
import com.vctgo.evidence.domain.TbEvidence;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.vctgo.evidence.mapper.TbEviMapper;
import com.vctgo.evidence.domain.TbEvi;
import com.vctgo.evidence.service.ITbEviService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vctgo.common.core.text.Convert;
import com.vctgo.common.core.utils.ServletUtils;
import com.vctgo.common.mybatisplus.constant.MybatisPageConstants;
/**
 * 凭证子Service业务层处理
 *
 * @author vctgo
 * @date 2024-12-16
 */
@Service
public class TbEviServiceImpl implements ITbEviService
{
    @Autowired
    private TbEviMapper tbEviMapper;

    /**
     * 查询凭证子
     *
     * @param id 凭证子主键
     * @return 凭证子
     */
    @Override
    public TbEvi selectTbEviById(Long id)
    {
        return tbEviMapper.selectById(id);
    }

    /**
     * 查询凭证子列表-分页
     *
     * @param tbEvi 凭证子
     * @return 凭证子
     */
    @Override
    public IPage<TbEvi> selectTbEviPage(TbEvi tbEvi)
    {
        Page mpPage =new Page(Convert.toLong(ServletUtils.getParameterToInt(MybatisPageConstants.PAGE_NUM),1L)
                ,Convert.toLong(ServletUtils.getParameterToInt(MybatisPageConstants.PAGE_SIZE),10L));
        return tbEviMapper.selectTbEviList(mpPage,tbEvi);
    }
    /**
     * 查询凭证子列表
     *
     * @param tbEvi 凭证子
     * @return 凭证子
     */
    @Override
    public List<TbEvi> selectTbEviList(TbEvi tbEvi)
    {
        return tbEviMapper.selectTbEviList(tbEvi);
    }

    /**
     * 新增凭证子
     *
     * @param tbEvi 凭证子
     * @return 结果
     */

    @Override
    public int insertTbEvi(TbEvi tbEvi)
    {
        return tbEviMapper.insert(tbEvi);
    }

    /**
     * 修改凭证子
     *
     * @param tbEvi 凭证子
     * @return 结果
     */
    @Override
    public int updateTbEvi(TbEvi tbEvi)
    {
        return tbEviMapper.updateById(tbEvi);
    }

    /**
     * 批量删除凭证子
     *
     * @param ids 需要删除的凭证子主键
     * @return 结果
     */
    @Override
    public int deleteTbEviByIds(Long[] ids)
    {
        return tbEviMapper.deleteTbEviByIds(ids);
    }

    /**
     * 删除凭证子信息
     *
     * @param id 凭证子主键
     * @return 结果
     */
    @Override
    public int deleteTbEviById(Long id)
    {
        return tbEviMapper.deleteById(id);
    }

    @Override
    public List<TbEvi> selectById(Integer evidentId) {
        return tbEviMapper.selectById2(evidentId);
    }

    @Override
    public int addModel(TbEvidence tbEvidence) {
        List<TbEvi> tbEviList = tbEvidence.getTbEviList();
        int modelNum =1;
        //设置模板编号
        int model = tbEviMapper.selectModel();
        modelNum+=model;

        int i=0;
        if (StringUtils.isNotNull(tbEviList)){
            //获取模板数据
            ArrayList<TbEvi> tbEvis = new ArrayList<>();
            for (TbEvi tbEvi : tbEviList) {
                tbEvi.setModelId(modelNum);
                tbEvi.setTenantId(1L);
                tbEvis.add(tbEvi);
            }
            if (tbEvis.size()>0){
                i = tbEviMapper.addModel(tbEvis);
            }
        }
        return i;
    }
}
